Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Volumetric Segmentations #277

Draft
wants to merge 101 commits into
base: v0.24.0dev
Choose a base branch
from
Draft

Conversation

CPBridge
Copy link
Collaborator

@CPBridge CPBridge commented Feb 2, 2024

Branch for NAMIC project week 40. Project page.

Goals

Add support for working with "volumetric": segmentations, i.e. regularly spaced frames in a 3D frame of reference. Specifically:

  • Upon construction, detect automatically whether a segmentation is a 3D volume and populate the "DimensionOrganizationType" attribute as "3D". This is in line with the proposed precise definition of "3D" that was (loosely) agreed upon at NAMIC Project Week (see project page above for details). [COMPLETED]
  • Add a convenience method to create a segmentation from a volumetric array and its associated affine matrix. [TO DO]
  • Upon reading, detect whether a segmentation is "volumetric" and add a method to retrieve a segmentation ordered according to geometry if it is volumetric. Additionally a way to access the associated affine matrix to enable interfacing with other libraries (sitk, nibabel, monai) more easily in the future. [IN PROGRESS]

Details

In order to do this, I have generalized the existing highdicom.seg.sop._SegDBManager class to create a general highdicom._multiframe.MultiFrameDBManager class to handle the logic of storing an in-memory sqlite database of per-frame information for general multiframe object. This simplifies the process of inspecting the geometry of subsets of frames and will also make it much easier to do similar things for other multiframe objects in the future (e.g. parametric maps, labelmap segmentations)

@CPBridge CPBridge self-assigned this Feb 2, 2024
@CPBridge CPBridge added the enhancement New feature or request label Feb 2, 2024
@CPBridge CPBridge changed the base branch from master to v0.23.0dev May 19, 2024 16:58
@CPBridge CPBridge changed the base branch from v0.23.0dev to v0.24.0dev October 12, 2024 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant